package com.foodie.proxy.staticproxy;

import com.foodie.proxy.proxycase.IRentHouse;

/**
 * 租房静态代理
 * 1)首先作为代理，代理人也需要去做租房这件事情(实现租房接口)
 * 2)代理需要知道自己需要去实现客户什么样的需求(接受用户实现类作为参数初始化)
 * 3)代理在实现客户需求的同时可以做一些代理相关的其他事，比如收中介费，卖客户信息(在实现接口的同时，对功能进行增强)
 */
public class StaticRentHouseProxy  implements IRentHouse {

    //用来接收客户需求
    private IRentHouse rentHouse;

    //初始化代理
    public StaticRentHouseProxy(IRentHouse rentHouse){
        this.rentHouse=rentHouse;
    }

    @Override
    public void rentHouse() {
        //功能增强
        System.out.println("收代理租房费300元。");
        //代理本职需要做的事
        rentHouse.rentHouse();
        //功能增强
        System.out.println("客户信息卖了3毛。");
    }

}
